home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / QuickTime / QuickTime 3 Interfaces & Libs / QTDevWin / CIncludes / HyperXCmd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-21  |  15.2 KB  |  626 lines  |  [TEXT/dosa]

  1. /*
  2.      File:        HyperXCmd.h
  3.  
  4.      Contains:    Interfaces for HyperCard XCMD's
  5.  
  6.      Version:    Technology:    HyperCard 2.3
  7.                  Release:    QuickTime 3.0
  8.  
  9.      Copyright:    © 1987-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __HYPERXCMD__
  19. #define __HYPERXCMD__
  20.  
  21. #ifndef __MACTYPES__
  22. #include <MacTypes.h>
  23. #endif
  24. #ifndef __FP__
  25. #include <fp.h>
  26. #endif
  27. #ifndef __EVENTS__
  28. #include <Events.h>
  29. #endif
  30. #ifndef __TEXTEDIT__
  31. #include <TextEdit.h>
  32. #endif
  33. #ifndef __MENUS__
  34. #include <Menus.h>
  35. #endif
  36. #ifndef __STANDARDFILE__
  37. #include <StandardFile.h>
  38. #endif
  39.  
  40.  
  41.  
  42. #if PRAGMA_ONCE
  43. #pragma once
  44. #endif
  45.  
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49.  
  50. #if PRAGMA_IMPORT
  51. #pragma import on
  52. #endif
  53.  
  54. #if PRAGMA_STRUCT_ALIGN
  55.     #pragma options align=mac68k
  56. #elif PRAGMA_STRUCT_PACKPUSH
  57.     #pragma pack(push, 2)
  58. #elif PRAGMA_STRUCT_PACK
  59.     #pragma pack(2)
  60. #endif
  61.  
  62. /* result codes */
  63.  
  64. enum {
  65.     xresSucc                    = 0,
  66.     xresFail                    = 1,
  67.     xresNotImp                    = 2
  68. };
  69.  
  70. /* XCMDBlock constants for event.what... */
  71.  
  72. enum {
  73.     xOpenEvt                    = 1000,                            /* the first event after you are created */
  74.     xCloseEvt                    = 1001,                            /* your window is being forced close (Quit?) */
  75.     xGiveUpEditEvt                = 1002,                            /* you are losing Edit... */
  76.     xGiveUpSoundEvt                = 1003,                            /* you are losing the sound channel... */
  77.     xHidePalettesEvt            = 1004,                            /* someone called HideHCPalettes */
  78.     xShowPalettesEvt            = 1005,                            /* someone called ShowHCPalettes */
  79.     xEditUndo                    = 1100,                            /* Edit——Undo */
  80.     xEditCut                    = 1102,                            /* Edit——Cut */
  81.     xEditCopy                    = 1103,                            /* Edit——Copy */
  82.     xEditPaste                    = 1104,                            /* Edit——Paste */
  83.     xEditClear                    = 1105,                            /* Edit——Clear */
  84.     xSendEvt                    = 1200,                            /* script has sent you a message (text) */
  85.     xSetPropEvt                    = 1201,                            /* set a window property */
  86.     xGetPropEvt                    = 1202,                            /* get a window property */
  87.     xCursorWithin                = 1300,                            /* cursor is within the window */
  88.     xMenuEvt                    = 1400,                            /* user has selected an item in your menu */
  89.     xMBarClickedEvt                = 1401,                            /* a menu is about to be shown--update if needed */
  90.     xShowWatchInfoEvt            = 1501,                            /* for variable and message watchers */
  91.     xScriptErrorEvt                = 1502,                            /* place the insertion point */
  92.     xDebugErrorEvt                = 1503,                            /* user clicked "Debug" at a complaint */
  93.     xDebugStepEvt                = 1504,                            /* hilite the line */
  94.     xDebugTraceEvt                = 1505,                            /* same as step but tracing */
  95.     xDebugFinishedEvt            = 1506                            /* script ended */
  96. };
  97.  
  98.  
  99. enum {
  100.     paletteProc                    = 2048,                            /* Windoid with grow box */
  101.     palNoGrowProc                = 2052,                            /* standard Windoid defproc */
  102.     palZoomProc                    = 2056,                            /* Windoid with zoom and grow */
  103.     palZoomNoGrow                = 2060                            /* Windoid with zoom and no grow */
  104. };
  105.  
  106.  
  107. enum {
  108.     hasZoom                        = 8,
  109.     hasTallTBar                    = 2,
  110.     toggleHilite                = 1
  111. };
  112.  
  113. /* paramCount is set to these constants when first calling special XThings */
  114.  
  115. enum {
  116.     xMessageWatcherID            = -2,
  117.     xVariableWatcherID            = -3,
  118.     xScriptEditorID                = -4,
  119.     xDebuggerID                    = -5
  120. };
  121.  
  122. /* XTalkObjectPtr->objectKind values */
  123.  
  124. enum {
  125.     stackObj                    = 1,
  126.     bkgndObj                    = 2,
  127.     cardObj                        = 3,
  128.     fieldObj                    = 4,
  129.     buttonObj                    = 5
  130. };
  131.  
  132. /* selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) */
  133.  
  134. enum {
  135.     errorDlgID                    = 1,                            /* 1:OK (default) */
  136.     confirmDlgID                = 2,                            /* 1:OK (default) and 2:Cancel */
  137.     confirmDelDlgID                = 3,                            /* 1:Cancel (default) and 2:Delete */
  138.     yesNoCancelDlgID            = 4                                /* 1:Yes (default), 2:Cancel, and 3:No */
  139. };
  140.  
  141.  
  142. /* type definitions */
  143.  
  144. struct XCmdBlock {
  145.     short                             paramCount;                    /* If = -1 then new use for XWindoids */
  146.     Handle                             params[16];
  147.     Handle                             returnValue;
  148.     Boolean                         passFlag;
  149.     SignedByte                         filler1;
  150.     UniversalProcPtr                 entryPoint;                    /* to call back to HyperCard */
  151.     short                             request;
  152.     short                             result;
  153.     long                             inArgs[8];
  154.     long                             outArgs[4];
  155. };
  156. typedef struct XCmdBlock                XCmdBlock;
  157.  
  158. typedef XCmdBlock *                        XCmdPtr;
  159.  
  160.  
  161. struct XWEventInfo {
  162.     EventRecord                     event;
  163.     WindowPtr                         eventWindow;
  164.     long                             eventParams[9];
  165.     Handle                             eventResult;
  166. };
  167. typedef struct XWEventInfo                XWEventInfo;
  168. typedef XWEventInfo *                    XWEventInfoPtr;
  169.  
  170. struct XTalkObject {
  171.     short                             objectKind;                    /* stack, bkgnd, card, field, or button */
  172.     long                             stackNum;                    /* reference number of the source stack */
  173.     long                             bkgndID;
  174.     long                             cardID;
  175.     long                             buttonID;
  176.     long                             fieldID;
  177. };
  178. typedef struct XTalkObject                XTalkObject;
  179. typedef XTalkObject *                    XTalkObjectPtr;
  180. /* maximum number of checkpoints in a script */
  181.  
  182. enum {
  183.     maxCachedChecks                = 16
  184. };
  185.  
  186.  
  187. struct CheckPts {
  188.     short                             checks[16];
  189. };
  190. typedef struct CheckPts                    CheckPts;
  191.  
  192. typedef CheckPts *                        CheckPtPtr;
  193. typedef CheckPtPtr *                    CheckPtHandle;
  194. /*
  195.         HyperTalk Utilities  
  196. */
  197. EXTERN_API( Handle )
  198. EvalExpr                        (XCmdPtr                 paramPtr,
  199.                                  ConstStr255Param         expr);
  200.  
  201. EXTERN_API( void )
  202. SendCardMessage                    (XCmdPtr                 paramPtr,
  203.                                  ConstStr255Param         msg);
  204.  
  205. EXTERN_API( void )
  206. SendHCMessage                    (XCmdPtr                 paramPtr,
  207.                                  ConstStr255Param         msg);
  208.  
  209. EXTERN_API( void )
  210. RunHandler                        (XCmdPtr                 paramPtr,
  211.                                  Handle                 handler);
  212.  
  213. /*
  214.         Memory Utilities  
  215. */
  216. EXTERN_API( Handle )
  217. GetGlobal                        (XCmdPtr                 paramPtr,
  218.                                  ConstStr255Param         globName);
  219.  
  220. EXTERN_API( void )
  221. SetGlobal                        (XCmdPtr                 paramPtr,
  222.                                  ConstStr255Param         globName,
  223.                                  Handle                 globValue);
  224.  
  225. EXTERN_API( void )
  226. ZeroBytes                        (XCmdPtr                 paramPtr,
  227.                                  void *                    dstPtr,
  228.                                  long                     longCount);
  229.  
  230. /*
  231.         String Utilities  
  232. */
  233. EXTERN_API( void )
  234. ScanToReturn                    (XCmdPtr                 paramPtr,
  235.                                  Ptr *                    scanPtr);
  236.  
  237. EXTERN_API( void )
  238. ScanToZero                        (XCmdPtr                 paramPtr,
  239.                                  Ptr *                    scanPtr);
  240.  
  241. EXTERN_API( Boolean )
  242. StringEqual                        (XCmdPtr                 paramPtr,
  243.                                  ConstStr255Param         str1,
  244.                                  ConstStr255Param         str2);
  245.  
  246. EXTERN_API( long )
  247. StringLength                    (XCmdPtr                 paramPtr,
  248.                                  void *                    strPtr);
  249.  
  250. EXTERN_API( void *)
  251. StringMatch                        (XCmdPtr                 paramPtr,
  252.                                  ConstStr255Param         pattern,
  253.                                  void *                    target);
  254.  
  255. EXTERN_API( void )
  256. ZeroTermHandle                    (XCmdPtr                 paramPtr,
  257.                                  Handle                 hndl);
  258.  
  259. /*
  260.         String Conversions  
  261. */
  262. EXTERN_API( void )
  263. BoolToStr                        (XCmdPtr                 paramPtr,
  264.                                  Boolean                 value,
  265.                                  Str255                 str);
  266.  
  267. EXTERN_API( void )
  268. Double_tToStr                    (XCmdPtr                 paramPtr,
  269.                                  double_t                 num,
  270.                                  Str255                 str);
  271.  
  272. EXTERN_API( void )
  273. LongToStr                        (XCmdPtr                 paramPtr,
  274.                                  long                     posNum,
  275.                                  Str255                 str);
  276.  
  277. EXTERN_API( void )
  278. NumToHex                        (XCmdPtr                 paramPtr,
  279.                                  long                     num,
  280.                                  short                     nDigits,
  281.                                  Str255                 str);
  282.  
  283. EXTERN_API( void )
  284. NumToStr                        (XCmdPtr                 paramPtr,
  285.                                  long                     num,
  286.                                  Str255                 str);
  287.  
  288. EXTERN_API( Handle )
  289. PasToZero                        (XCmdPtr                 paramPtr,
  290.                                  ConstStr255Param         str);
  291.  
  292. EXTERN_API( void )
  293. PointToStr                        (XCmdPtr                 paramPtr,
  294.                                  Point                     pt,
  295.                                  Str255                 str);
  296.  
  297. EXTERN_API( void )
  298. RectToStr                        (XCmdPtr                 paramPtr,
  299.                                  const Rect *            rct,
  300.                                  Str255                 str);
  301.  
  302. EXTERN_API( void )
  303. ReturnToPas                        (XCmdPtr                 paramPtr,
  304.                                  void *                    zeroStr,
  305.                                  Str255                 pasStr);
  306.  
  307. EXTERN_API( Boolean )
  308. StrToBool                        (XCmdPtr                 paramPtr,
  309.                                  ConstStr255Param         str);
  310.  
  311. EXTERN_API( double_t )
  312. StrToDouble_t                    (XCmdPtr                 paramPtr,
  313.                                  ConstStr255Param         str);
  314.  
  315. EXTERN_API( long )
  316. StrToLong                        (XCmdPtr                 paramPtr,
  317.                                  ConstStr255Param         str);
  318.  
  319. EXTERN_API( long )
  320. StrToNum                        (XCmdPtr                 paramPtr,
  321.                                  ConstStr255Param         str);
  322.  
  323. EXTERN_API( void )
  324. StrToPoint                        (XCmdPtr                 paramPtr,
  325.                                  ConstStr255Param         str,
  326.                                  Point *                pt);
  327.  
  328. EXTERN_API( void )
  329. StrToRect                        (XCmdPtr                 paramPtr,
  330.                                  ConstStr255Param         str,
  331.                                  Rect *                    rct);
  332.  
  333. EXTERN_API( void )
  334. ZeroToPas                        (XCmdPtr                 paramPtr,
  335.                                  void *                    zeroStr,
  336.                                  Str255                 pasStr);
  337.  
  338. /*
  339.         Field Utilities  
  340. */
  341. EXTERN_API( Handle )
  342. GetFieldByID                    (XCmdPtr                 paramPtr,
  343.                                  Boolean                 cardFieldFlag,
  344.                                  short                     fieldID);
  345.  
  346. EXTERN_API( Handle )
  347. GetFieldByName                    (XCmdPtr                 paramPtr,
  348.                                  Boolean                 cardFieldFlag,
  349.                                  ConstStr255Param         fieldName);
  350.  
  351. EXTERN_API( Handle )
  352. GetFieldByNum                    (XCmdPtr                 paramPtr,
  353.                                  Boolean                 cardFieldFlag,
  354.                                  short                     fieldNum);
  355.  
  356. EXTERN_API( void )
  357. SetFieldByID                    (XCmdPtr                 paramPtr,
  358.                                  Boolean                 cardFieldFlag,
  359.                                  short                     fieldID,
  360.                                  Handle                 fieldVal);
  361.  
  362. EXTERN_API( void )
  363. SetFieldByName                    (XCmdPtr                 paramPtr,
  364.                                  Boolean                 cardFieldFlag,
  365.                                  ConstStr255Param         fieldName,
  366.                                  Handle                 fieldVal);
  367.  
  368. EXTERN_API( void )
  369. SetFieldByNum                    (XCmdPtr                 paramPtr,
  370.                                  Boolean                 cardFieldFlag,
  371.                                  short                     fieldNum,
  372.                                  Handle                 fieldVal);
  373.  
  374. EXTERN_API( TEHandle )
  375. GetFieldTE                        (XCmdPtr                 paramPtr,
  376.                                  Boolean                 cardFieldFlag,
  377.                                  short                     fieldID,
  378.                                  short                     fieldNum,
  379.                                  ConstStr255Param         fieldName);
  380.  
  381. EXTERN_API( void )
  382. SetFieldTE                        (XCmdPtr                 paramPtr,
  383.                                  Boolean                 cardFieldFlag,
  384.                                  short                     fieldID,
  385.                                  short                     fieldNum,
  386.                                  ConstStr255Param         fieldName,
  387.                                  TEHandle                 fieldTE);
  388.  
  389. /*
  390.         Miscellaneous Utilities  
  391. */
  392. EXTERN_API( void )
  393. BeginXSound                        (XCmdPtr                 paramPtr,
  394.                                  WindowPtr                 window);
  395.  
  396. EXTERN_API( void )
  397. EndXSound                        (XCmdPtr                 paramPtr);
  398.  
  399. EXTERN_API( Boolean )
  400. GetFilePath                        (XCmdPtr                 paramPtr,
  401.                                  ConstStr255Param         fileName,
  402.                                  short                     numTypes,
  403.                                  ConstSFTypeListPtr     typeList,
  404.                                  Boolean                 askUser,
  405.                                  OSType *                fileType,
  406.                                  Str255                 fullName);
  407.  
  408. EXTERN_API( void )
  409. GetXResInfo                        (XCmdPtr                 paramPtr,
  410.                                  short *                resFile,
  411.                                  short *                resID,
  412.                                  ResType *                rType,
  413.                                  Str255                 name);
  414.  
  415. EXTERN_API( void )
  416. Notify                            (XCmdPtr                 paramPtr);
  417.  
  418. EXTERN_API( void )
  419. SendHCEvent                        (XCmdPtr                 paramPtr,
  420.                                  const EventRecord *    event);
  421.  
  422. EXTERN_API( void )
  423. SendWindowMessage                (XCmdPtr                 paramPtr,
  424.                                  WindowPtr                 windPtr,
  425.                                  ConstStr255Param         windowName,
  426.                                  ConstStr255Param         msg);
  427.  
  428. EXTERN_API( WindowPtr )
  429. FrontDocWindow                    (XCmdPtr                 paramPtr);
  430.  
  431. EXTERN_API( long )
  432. StackNameToNum                    (XCmdPtr                 paramPtr,
  433.                                  ConstStr255Param         stackName);
  434.  
  435. EXTERN_API( short )
  436. ShowHCAlert                        (XCmdPtr                 paramPtr,
  437.                                  short                     dlgID,
  438.                                  ConstStr255Param         promptStr);
  439.  
  440. EXTERN_API( Boolean )
  441. AbortInQueue                    (XCmdPtr                 paramPtr);
  442.  
  443. EXTERN_API( void )
  444. FlushStackFile                    (XCmdPtr                 paramPtr);
  445.  
  446. /*
  447.         Creating and Disposing XWindoids  
  448. */
  449. EXTERN_API( WindowPtr )
  450. NewXWindow                        (XCmdPtr                 paramPtr,
  451.                                  const Rect *            boundsRect,
  452.                                  ConstStr255Param         title,
  453.                                  Boolean                 visible,
  454.                                  short                     procID,
  455.                                  Boolean                 color,
  456.                                  Boolean                 floating);
  457.  
  458. EXTERN_API( WindowPtr )
  459. GetNewXWindow                    (XCmdPtr                 paramPtr,
  460.                                  ResType                 templateType,
  461.                                  short                     templateID,
  462.                                  Boolean                 color,
  463.                                  Boolean                 floating);
  464.  
  465. EXTERN_API( void )
  466. CloseXWindow                    (XCmdPtr                 paramPtr,
  467.                                  WindowPtr                 window);
  468.  
  469. /*
  470.         XWindoid Utilities  
  471. */
  472. EXTERN_API( void )
  473. HideHCPalettes                    (XCmdPtr                 paramPtr);
  474.  
  475. EXTERN_API( void )
  476. ShowHCPalettes                    (XCmdPtr                 paramPtr);
  477.  
  478. EXTERN_API( void )
  479. RegisterXWMenu                    (XCmdPtr                 paramPtr,
  480.                                  WindowPtr                 window,
  481.                                  MenuHandle             menu,
  482.                                  Boolean                 registering);
  483.  
  484. EXTERN_API( void )
  485. SetXWIdleTime                    (XCmdPtr                 paramPtr,
  486.                                  WindowPtr                 window,
  487.                                  long                     interval);
  488.  
  489. EXTERN_API( void )
  490. XWHasInterruptCode                (XCmdPtr                 paramPtr,
  491.                                  WindowPtr                 window,
  492.                                  Boolean                 haveCode);
  493.  
  494. EXTERN_API( void )
  495. XWAlwaysMoveHigh                (XCmdPtr                 paramPtr,
  496.                                  WindowPtr                 window,
  497.                                  Boolean                 moveHigh);
  498.  
  499. EXTERN_API( void )
  500. XWAllowReEntrancy                (XCmdPtr                 paramPtr,
  501.                                  WindowPtr                 window,
  502.                                  Boolean                 allowSysEvts,
  503.                                  Boolean                 allowHCEvts);
  504.  
  505. /*
  506.         Text Editing Utilities  
  507. */
  508. EXTERN_API( void )
  509. BeginXWEdit                        (XCmdPtr                 paramPtr,
  510.                                  WindowPtr                 window);
  511.  
  512. EXTERN_API( void )
  513. EndXWEdit                        (XCmdPtr                 paramPtr,
  514.                                  WindowPtr                 window);
  515.  
  516. EXTERN_API( WordBreakUPP )
  517. HCWordBreakProc                    (XCmdPtr                 paramPtr);
  518.  
  519. EXTERN_API( void )
  520. PrintTEHandle                    (XCmdPtr                 paramPtr,
  521.                                  TEHandle                 hTE,
  522.                                  StringPtr                 header);
  523.  
  524. /*
  525.         Script Editor support  
  526. */
  527. EXTERN_API( CheckPtHandle )
  528. GetCheckPoints                    (XCmdPtr                 paramPtr);
  529.  
  530. EXTERN_API( void )
  531. SetCheckPoints                    (XCmdPtr                 paramPtr,
  532.                                  CheckPtHandle             checkLines);
  533.  
  534. EXTERN_API( void )
  535. FormatScript                    (XCmdPtr                 paramPtr,
  536.                                  Handle                 scriptHndl,
  537.                                  long *                    insertionPoint,
  538.                                  Boolean                 quickFormat);
  539.  
  540. EXTERN_API( void )
  541. SaveXWScript                    (XCmdPtr                 paramPtr,
  542.                                  Handle                 scriptHndl);
  543.  
  544. EXTERN_API( void )
  545. GetObjectName                    (XCmdPtr                 paramPtr,
  546.                                  XTalkObjectPtr         xObjPtr,
  547.                                  Str255                 objName);
  548.  
  549. EXTERN_API( void )
  550. GetObjectScript                    (XCmdPtr                 paramPtr,
  551.                                  XTalkObjectPtr         xObjPtr,
  552.                                  Handle *                scriptHndl);
  553.  
  554. EXTERN_API( void )
  555. SetObjectScript                    (XCmdPtr                 paramPtr,
  556.                                  XTalkObjectPtr         xObjPtr,
  557.                                  Handle                 scriptHndl);
  558.  
  559. /*
  560.         Debugging Tools support  
  561. */
  562. EXTERN_API( void )
  563. AbortScript                        (XCmdPtr                 paramPtr);
  564.  
  565. EXTERN_API( void )
  566. GoScript                        (XCmdPtr                 paramPtr);
  567.  
  568. EXTERN_API( void )
  569. StepScript                        (XCmdPtr                 paramPtr,
  570.                                  Boolean                 stepInto);
  571.  
  572. EXTERN_API( void )
  573. CountHandlers                    (XCmdPtr                 paramPtr,
  574.                                  short *                handlerCount);
  575.  
  576. EXTERN_API( void )
  577. GetHandlerInfo                    (XCmdPtr                 paramPtr,
  578.                                  short                     handlerNum,
  579.                                  Str255                 handlerName,
  580.                                  Str255                 objectName,
  581.                                  short *                varCount);
  582.  
  583. EXTERN_API( void )
  584. GetVarInfo                        (XCmdPtr                 paramPtr,
  585.                                  short                     handlerNum,
  586.                                  short                     varNum,
  587.                                  Str255                 varName,
  588.                                  Boolean *                isGlobal,
  589.                                  Str255                 varValue,
  590.                                  Handle                 varHndl);
  591.  
  592. EXTERN_API( void )
  593. SetVarValue                        (XCmdPtr                 paramPtr,
  594.                                  short                     handlerNum,
  595.                                  short                     varNum,
  596.                                  Handle                 varHndl);
  597.  
  598. EXTERN_API( Handle )
  599. GetStackCrawl                    (XCmdPtr                 paramPtr);
  600.  
  601. EXTERN_API( void )
  602. TraceScript                        (XCmdPtr                 paramPtr,
  603.                                  Boolean                 traceInto);
  604.  
  605.  
  606. #if PRAGMA_STRUCT_ALIGN
  607.     #pragma options align=reset
  608. #elif PRAGMA_STRUCT_PACKPUSH
  609.     #pragma pack(pop)
  610. #elif PRAGMA_STRUCT_PACK
  611.     #pragma pack()
  612. #endif
  613.  
  614. #ifdef PRAGMA_IMPORT_OFF
  615. #pragma import off
  616. #elif PRAGMA_IMPORT
  617. #pragma import reset
  618. #endif
  619.  
  620. #ifdef __cplusplus
  621. }
  622. #endif
  623.  
  624. #endif /* __HYPERXCMD__ */
  625.  
  626.